package com.itheima.exerciseTest.method10_19.method12;

        import java.text.Collator;
        import java.util.Locale;

/*
2.分析以下需求，并用代码实现：
	(1)定义一个员工类Employee，包含三个属性：姓名(String name)、年龄(int age)、工资(int salary)
	(2)创建5个对象装入TreeSet，按照工资从高到底排序输出结果(工资相同，按照年龄从低到高，工资和年龄都相同，
		按照姓名字典顺序排列，但是不能去重(姓名、年龄、工资都相同))
 */
public class Employee implements Comparable<Employee> {
    private String name; // 姓名
    private int age; // 年龄
    private int salary; // 工资

    public Employee() {
    }

    public Employee(String name, int age, int salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                '}';
    }

    // (2)创建5个对象装入TreeSet，按照工资从高到底排序输出结果(工资相同，按照年龄从低到高，工资和年龄都相同，
    //		按照姓名字典顺序排列，但是不能去重(姓名、年龄、工资都相同))
    @Override
    public int compareTo(Employee e) {
        // 比工资 高到低
        int result = this.salary - e.salary;
        if (result != 0)
            return -result;

        // 比年龄 从低到高
        result = this.age - e.age;
        if (result != 0)
            return result;

        // 比姓名 典顺序排列 先比英文 没英文就比中文 不能去重
        char[] arr = this.name.toCharArray();
        boolean boo = false;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] >= 'A' && arr[i] <= 'Z') {
                boo = true;
                break;
            } else if (arr[i] >= 'a' && arr[i] <= 'z') {
                boo = true;
                break;
            }
        }
        // 比较英文字典
        if (boo == true) {
            result = this.name.compareTo(e.name);
            return result = result == 0 ? 1 : result;
        }
        // 比较中文字典
        // 创建中文比较器
        Collator ins = Collator.getInstance(Locale.CHINESE);
        result = ins.compare(this.name, e.name);
        return result = result == 0 ? 1 : result;
    }
}
